package beans;

// Generated 09/06/2011 23:19:23 by Hibernate Tools 3.4.0.CR1

import java.util.Calendar;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * TbOp generated by hbm2java
 */
@Entity
@Table(name = "TB_OP")
public class TbOp implements java.io.Serializable {

	private long opCod;
	private TbCliente tbCliente;
	private TbProduto tbProduto;
	private long opQuantidade;
	private Date opPrazofinal;
	private Calendar opDatahoraemissao;
	private Calendar opDatahoraatualizacao;
	private char opStatus;
	private Set<TbBoleto> tbBoletos = new HashSet<TbBoleto>(0);

	public TbOp() {
	}

	public TbOp(long opCod, TbCliente tbCliente, TbProduto tbProduto,
			long opQuantidade, Date opPrazofinal, Calendar opDatahoraemissao,
			Calendar opDatahoraatualizacao, char opStatus) {
		this.opCod = opCod;
		this.tbCliente = tbCliente;
		this.tbProduto = tbProduto;
		this.opQuantidade = opQuantidade;
		this.opPrazofinal = opPrazofinal;
		this.opDatahoraemissao = opDatahoraemissao;
		this.opDatahoraatualizacao = opDatahoraatualizacao;
		this.opStatus = opStatus;
	}

	public TbOp(long opCod, TbCliente tbCliente, TbProduto tbProduto,
			long opQuantidade, Date opPrazofinal, Calendar opDatahoraemissao,
			Calendar opDatahoraatualizacao, char opStatus,
			Set<TbBoleto> tbBoletos) {
		this.opCod = opCod;
		this.tbCliente = tbCliente;
		this.tbProduto = tbProduto;
		this.opQuantidade = opQuantidade;
		this.opPrazofinal = opPrazofinal;
		this.opDatahoraemissao = opDatahoraemissao;
		this.opDatahoraatualizacao = opDatahoraatualizacao;
		this.opStatus = opStatus;
		this.tbBoletos = tbBoletos;
	}

	@Id
	@Column(name = "OP_COD", unique = true, nullable = false, precision = 10, scale = 0)
	public long getOpCod() {
		return this.opCod;
	}

	public void setOpCod(long opCod) {
		this.opCod = opCod;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "OP_CODCLI", nullable = false)
	public TbCliente getTbCliente() {
		return this.tbCliente;
	}

	public void setTbCliente(TbCliente tbCliente) {
		this.tbCliente = tbCliente;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "OP_CODPRODUTO", nullable = false)
	public TbProduto getTbProduto() {
		return this.tbProduto;
	}

	public void setTbProduto(TbProduto tbProduto) {
		this.tbProduto = tbProduto;
	}

	@Column(name = "OP_QUANTIDADE", nullable = false, precision = 10, scale = 0)
	public long getOpQuantidade() {
		return this.opQuantidade;
	}

	public void setOpQuantidade(long opQuantidade) {
		this.opQuantidade = opQuantidade;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "OP_PRAZOFINAL", nullable = false, length = 7)
	public Date getOpPrazofinal() {
		return this.opPrazofinal;
	}

	public void setOpPrazofinal(Date opPrazofinal) {
		this.opPrazofinal = opPrazofinal;
	}

	@Column(name = "OP_DATAHORAEMISSAO", nullable = false)
	public Calendar getOpDatahoraemissao() {
		return this.opDatahoraemissao;
	}

	public void setOpDatahoraemissao(Calendar opDatahoraemissao) {
		this.opDatahoraemissao = opDatahoraemissao;
	}

	@Column(name = "OP_DATAHORAATUALIZACAO", nullable = false)
	public Calendar getOpDatahoraatualizacao() {
		return this.opDatahoraatualizacao;
	}

	public void setOpDatahoraatualizacao(Calendar opDatahoraatualizacao) {
		this.opDatahoraatualizacao = opDatahoraatualizacao;
	}

	@Column(name = "OP_STATUS", nullable = false, length = 1)
	public char getOpStatus() {
		return this.opStatus;
	}

	public void setOpStatus(char opStatus) {
		this.opStatus = opStatus;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "tbOp")
	public Set<TbBoleto> getTbBoletos() {
		return this.tbBoletos;
	}

	public void setTbBoletos(Set<TbBoleto> tbBoletos) {
		this.tbBoletos = tbBoletos;
	}

}
